Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek obsahuje doplňující poznámky k referenční dokumentaci pro toto rozhraní API.
Třída HashSet<T> poskytuje vysoce výkonné množinové operace. Sada je kolekce, která neobsahuje žádné duplicitní prvky a jejichž prvky nejsou v žádném konkrétním pořadí.
Kapacita objektu HashSet<T> je počet prvků, které může objekt obsahovat. HashSet<T> Kapacita objektu se automaticky zvyšuje při přidání prvků do objektu.
Třída HashSet<T> je založená na modelu matematických sad a poskytuje operace s vysokou úrovní výkonu podobné přístupu ke klíčům kolekcí Dictionary<TKey,TValue> nebo Hashtable. Jednoduše řečeno, HashSet<T> třída může být považována Dictionary<TKey,TValue> za kolekci bez hodnot.
HashSet<T> Kolekce není seřazená a nemůže obsahovat duplicitní prvky. Pokud je duplikace pořadí nebo elementu pro vaši aplikaci důležitější než výkon, zvažte použití List<T> třídy společně s metodou Sort .
HashSet<T> poskytuje mnoho matematických operací sady, jako je sčítání sady (sjednocení) a odčítání sady. Následující tabulka uvádí zadané HashSet<T> operace a jejich matematické ekvivalenty.
| Operace HashSet | Matematický ekvivalent |
|---|---|
| UnionWith | Sjednocení nebo sčítání množin |
| IntersectWith | Křižovatka |
| ExceptWith | Nastavení odčítání |
| SymmetricExceptWith | Symetrický rozdíl |
Kromě uvedených operací HashSet<T> sady třída také poskytuje metody pro určení rovnosti sady, překrytí sad a zda je sada podmnožinou nebo nadmnožinou jiné sady.
Pouze rozhraní .NET Framework: U velmi velkých HashSet<T> objektů můžete zvýšit maximální kapacitu na 2 miliardy prvků v 64bitovém systému nastavením enabled atributu <gcAllowVeryLargeObjects> elementu konfigurace do true prostředí runtime.
Třída HashSet<T> implementuje rozhraní ISet<T>.
HashSet a množinové operace LINQ
LINQ poskytuje přístup k množinovým operacím Distinct, Union, Intersect a Except pro jakýkoli datový zdroj, který implementuje rozhraní IEnumerable nebo IQueryable.
HashSet<T> poskytuje větší a robustnější kolekci operací s množinami. Například HashSet<T> poskytuje porovnání, jako IsSubsetOf a IsSupersetOf.
Hlavním rozdílem mezi operacemi a operacemi HashSet<T> sady LINQ je, že operace sady LINQ vždy vrací novou IEnumerable<T> kolekci, zatímco HashSet<T> ekvivalentní metody upravují aktuální kolekci.
Pokud obvykle musíte vytvořit novou sadu nebo pokud vaše aplikace potřebuje přístup pouze k zadaným operacím sady, bude stačit použití operací sady LINQ pro libovolnou IEnumerable<T> kolekci nebo pole. Pokud však vaše aplikace vyžaduje přístup k dalším operacím sady nebo pokud není žádoucí nebo nutné vytvořit novou kolekci, použijte HashSet<T> třídu.
Následující tabulka ukazuje HashSet<T> operace a jejich ekvivalentní operace sady LINQ.
| Operace HashSet | LINQ ekvivalent |
|---|---|
| UnionWith | Union |
| IntersectWith | Intersect |
| ExceptWith | Except |
| Není k dispozici. | Distinct |
| SymmetricExceptWith | Není k dispozici. |
| Overlaps | Není k dispozici. |
| IsSubsetOf | Není k dispozici. |
| IsProperSubsetOf | Není k dispozici. |
| IsSupersetOf | Není k dispozici. |
| IsProperSupersetOf | Není k dispozici. |
| SetEquals | Není k dispozici. |